import logging

from PyQt5.QtGui import QColor, QFont
from PyQt5.QtWidgets import QListWidget, QListWidgetItem


class InfoListWidget(QListWidget):
    INFO = 0
    NOTICE = 1
    WARNING = 2
    CRITICAL = 3
    color_list = [
        QColor(255, 255, 255),  # INFO 白色 通知
        QColor(0, 0, 255),  # NOTICE 蓝色 提示
        QColor(255, 255, 0),  # WARNNING 黄色 注意
        QColor(255, 0, 0)  # CRITICAL 红色 告警
    ]

    def __init__(self, *args, **kwargs):
        text = kwargs.pop("text", "")
        super(InfoListWidget, self).__init__(*args, **kwargs)
        self.item_font = QFont("Noto Sans S Chinese Bold", 14)

    def addStyledItem(self, text_str, item_type=0):
        """
        添加列表元素，作为提示信息

        :param text_str: 提示信息字符串
        :param item_type: 告警信息类型 分为：INFO NOTICE WARNING CRITICAL
        :return:
        """
        tmp_color = QColor(255, 255, 255)
        try:
            tmp_color = self.color_list[item_type]
        except:
            logging.info("invalid item_type:%d", item_type)

        item = QListWidgetItem(text_str)
        item.setFont(self.item_font)
        item.setForeground(tmp_color)
        self.insertItem(0, item)
        # self.addItem(item)
